package com.videoweb.service;

import com.videoweb.entity.Menu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.videoweb.entity.vo.RouterVo;
import com.videoweb.entity.vo.TreeSelect;

import java.util.List;
import java.util.Set;
import java.util.ArrayList;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author lmr
 * @since 2025-05-17
 */
public interface IMenuService extends IService<Menu> {

//根绝角色的ID来查找菜单
    public Set<String> selectMenuPermsByRoleId(Long roleId);

//    根据用户的ID来查找菜单权限
    public Set<String> selectMenuPermsByUserId(Long userId);


    public List<Menu> selectMenuTreeByUserId(Long userId);

    /**
     * 构建前端路由所需要的菜单
     *
     * @param menus 菜单列表
     * @return 路由列表
     */
    public List<RouterVo> buildMenus(List<Menu> menus);

    // 查询所有菜单树
    List<Menu> selectMenuTreeAll();
    // 查询角色已分配菜单ID
    List<Long> selectMenuIdsByRoleId(Long roleId);
    // 构建菜单树结构（用于下拉树）
    List<TreeSelect> buildMenuTreeSelect(List<Menu> menus);

    // 保存角色菜单权限
    void updateRoleMenus(Long roleId, List<Integer> menuIds);

}
